Skip to content

Add and fix JSON stack overflow tests#74

Open
lod wants to merge 4 commits intorustyrussell:masterfrom
lod:73
Open

Add and fix JSON stack overflow tests#74
lod wants to merge 4 commits intorustyrussell:masterfrom
lod:73

Conversation

@lod
Copy link
Copy Markdown

@lod lod commented May 1, 2018

Fixes #73

The JSON test suite (https://github.com/nst/JSONTestSuite/) contains
a list of JSON test files, two of which which triggered crashes.
n_structure_100000_opening_arrays.json
n_structure_open_array_object.json

These crashes were both caused by excessive recursion as they created
massively deep arrays and objects.

These test examples have been added to test-strings.
Modifications were alse made to the test runners to support them.

An arbitrary depth cap has been added to the parser prevent the
overflow problem.

lod added 4 commits May 1, 2018 22:58
The JSON test suite (https://github.com/nst/JSONTestSuite/) contains
a list of JSON test files, two of which which triggered crashes.
    n_structure_100000_opening_arrays.json
    n_structure_open_array_object.json

These crashes were both caused by excessive recursion as they created
massively deep arrays and objects.

These test examples have been added to test-strings.
Modifications were alse made to the test runners to support them.

An arbitrary depth cap has been added to the parser prevent the
overflow problem.
Repeated calls to parse_value() where parse_object() or parse_array()
failed would lead to an accumulation of the depth value.

The other way of fixing this would be to reset depth in json_decode()
@lod
Copy link
Copy Markdown
Author

lod commented May 1, 2018

Clang tests failing, looks like this error
travis-ci/travis-ci#8613

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant